using UnityEngine;

public class US_Earth_Script : MonoBehaviour
{
    public Transform sun;
    [Header("地球绕太阳的旋转轴")]
    public Vector3 aroundAxis;
    [Header("公转速度")]
    public float aroundSpeed = 0.1f;
    [Header("自转速度")]
    public float rotateSpeed = 3f;

    private void Start()
    {
        // 求太阳指向地球的向量
        Vector3 direction = transform.position - sun.position;
        // 使用叉乘-求太阳指向地球向量和公转轴的法向量
        Vector3 normal = Vector3.Cross(aroundAxis, direction);
        // 求太阳指向地球的向量 与 公转轴 的夹角
        float angle = Vector3.Angle(aroundAxis, direction);
        angle = Mathf.Abs(angle - 90);
        // 将地球绕太阳和法向量轴旋转 angle角度, 使太阳位于 地球绕太阳的公转平面上
        transform.RotateAround(sun.position, normal, angle);
    }

    void Update()
    {
        // 自转
        transform.Rotate(Vector3.up*3, rotateSpeed,Space.Self);
        // 公转
        transform.RotateAround(sun.position, aroundAxis, aroundSpeed);
    }
}